package com.eastfair.auth.service;

import com.eastfair.boot.service.SuperCacheService;
import com.eastfair.auth.entity.MenuRole;
import com.eastfair.core.base.R;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 
 * </p>
 *
 * @author ligang
 * @date 2021-07-23
 */
public interface MenuRoleService extends SuperCacheService<MenuRole> {

    /**
     * 添加菜单关联角色
     * @param roleId 角色id
     * @param menuIds 菜单id集合
     * @return
     */
    R addOfMenu(Long roleId,List<Long> menuIds);

    /**
     * 剔除菜单关联角色
     * @param menuId  菜单id
     * @param roleIds 角色id集合
     * @return
     */
    R removeMenuRole(Long menuId,List<Long> roleIds);

    /**
     * 剔除菜单关联角色
     * @param roleIds 角色id集合
     * @return
     */
    R removeRole(List<Long> roleIds);

    /**
     * 剔除菜单关联角色
     * @param menuIds 菜单id集合
     * @return
     */
    R removeMenu(List<Long> menuIds);

    /**
     * 查询角色下的菜单
     * @param roleIds 角色id集合
     * @return
     */
    R<List<MenuRole>> findOfRole(List<Long> roleIds);

    /**
     * 条件查询
     * @param menuRole 菜单角色实体
     * @param menuIds  菜单id集合
     * @param roleIds   角色id集合
     * @return
     */
    List<MenuRole> list(MenuRole menuRole, List<Long> menuIds, List<Long> roleIds);

    /**
     * 条件查询 缓存
     * @param menuRole 菜单角色实体
     * @param menuIds  菜单id集合
     * @param roleIds   角色id集合
     * @return
     */
    List<MenuRole> listOfCache(MenuRole menuRole, List<Long> menuIds, List<Long> roleIds);
}
